package com.atguigu.lease.web.admin.custom.converter;

import com.atguigu.lease.model.enums.ItemType;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

/**
 * projectName: com.atguigu.lease.web.admin.custom.converter
 *
 * @author: 赵伟风
 * description: 实现 String 12 和 枚举的ItemType类型转化
 * 实现步骤：
 *   1. 实现Converter自定义参数类型转化 key=value
 *   2. Converter<Source原类型,Target目标类型> S =》 String (String = request.getParameter(""))
 *   3. 实现类型转化方法
 */

@Component
public class StringToItemTypeConverter  implements Converter<String, ItemType> {


    /**
     * @param source 要转化的数据原值 “1” “2”
     * @return 转化的对应枚举类型
     */
//    @Override
//    public ItemType convert(String source) {
//        if (source.equals("1")) return ItemType.APARTMENT;
//        if (source.equals("2")) return ItemType.ROOM;
//        throw new RuntimeException("数据类型错误，值必须是1/2;");
//    }

    @Override
    public ItemType convert(String source) {

        //枚举对象.values() -> 获取枚举内部的具体对象类型集合
        for (ItemType itemType : ItemType.values()) {
            if (itemType.getCode() == Integer.parseInt(source)){
                return itemType;
            }
        }
        throw new RuntimeException("数据类型错误，值必须是1/2;");
    }
}
